package cn.bytecollege.admin.service;

import cn.bytecollege.admin.dao.ClassifyDao;
import cn.bytecollege.common.entity.Classify;
import cn.bytecollege.common.entity.Page;

import java.util.List;

/**
 * @Auther：MR.P
 * @Date:2021/10/28 10 20
 * @Description:
 */
public class ClassifyService {
    private ClassifyDao classifyDao = null;
    public ClassifyService(){
        classifyDao = new ClassifyDao();
    }

    /**
     * 添加分类
     * @param classify
     * @return
     */
    public int save(Classify classify){
        return classifyDao.save(classify);
    }

    /**
     *根据分类名字查询分类
     * @param classifyName
     * @return
     */
    public Classify findByClassifyName(String classifyName){
        return classifyDao.findByClassifyName(classifyName);
    }

    /**
     * 分页查询
     * @param pageIndex
     * @param pageSize
     * @return
     */
    public Page<Classify> findByPage(int pageIndex,int pageSize){
        //分页查询数据
        List<Classify> list = classifyDao.findByPage(pageIndex,pageSize);
        //查询总条数
        int count = classifyDao.count();
        //封装Page对象
        Page<Classify> page = new Page<>();
        page.setCurrentIndex(pageIndex);
        page.setPageSize(pageSize);
        //计算总页数
        page.setTotalPage(count);
        //封装总条数
        page.setTotal(count);
        //封装数据
        page.setList(list);
        //封装页面显示的页面
        page.setPageIndex();
        return page;
    }

    /**
     * 查询所有的分类
     * @return
     */
    public List<Classify> find(){
        return classifyDao.find();
    }

    /**
     * 根据分类的名字找出分类
     * @param classifyId
     * @return
     */
    public Classify findById(Integer classifyId){
        return classifyDao.findById(classifyId);
    }

    /**
     * 修改分类
     * @param classify
     * @return
     */
    public int update(Classify classify) {
        return classifyDao.update(classify);
    }
    /**
     * 添加商品时，商家可以下拉看有哪些商品分类，此方法就是查出商品分类。
     * @return
     */
    public List<Classify> findClassify(){
        return classifyDao.findClassify();
    }

    /**
     * 根据分类id删除分类
     * @param classifyId
     * @return
     */
    public int deleteClassifyById(Integer classifyId){
        return classifyDao.deleteClassifyById(classifyId);
    }

    /**
     * 根据分类名字查找分类，分页查询，模糊查询
     * @param pageIndex
     * @param pageSize
     * @return
     */
    public Page<Classify> findListByClassifyName(String classifyName,int pageIndex,int pageSize){
        //分页查询数据
        List<Classify> list = classifyDao.findListByClassifyName(classifyName,pageIndex,pageSize);
        //查询总条数
        int count1 = classifyDao.countByClassifyName(classifyName);
        //封装Page对象
        Page<Classify> page = new Page<>();
        page.setCurrentIndex(pageIndex);
        page.setPageSize(pageSize);
        //计算总页数
        page.setTotalPage(count1);
        //封装总条数
        page.setTotal(count1);
        //封装数据
        page.setList(list);
        //封装页面显示的页面
        page.setPageIndex();
        return page;
    }
}
